Skip to main content

DAppNode

DAppNode is a simple platform for deploying and hosting DApps, P2P clients, and blockchain nodes. It provides a user-friendly way to set up and configure nodes with a couple of clicks. It is a Free Open Source Software, and can be used in the following ways

  1. Purchase one of their pre-installed DAppNode Servers. These are designed to be able to be run by those with very little technical know-how, and requires no command line at any point.
  2. Install DAppNode software on any compatible hardware or even a VPS. The installation is done by following the their official installation documentation Here

Using DAppNode

This guide was done with the inestimable help of DAppNode Team Member @voss, with some additions from @Lanski.

Step 1. Install the required packages for validating

Once you have access to the Dappnode UI, go to the Stakers-UI page , you can access by clicking on http://my.dappnode/#/stakers/gnosis or click on the Stakers section you can find in the left Nav Bar, then click on the Gnosis tab.

Select Stakers in the left side menu

Make sure to select the Gnosis chain tab,

Select the tab Gnosis Chain

The next step is to select the combination of client you want to use in your dappnode. For this process you need to select:

    1. Select the execution client: Nethermind-xdai. Click in the package
    1. Select the consensus client, here you can install one of the following options: Teku-gnosis, Lighthouse-gnosis and Prysm-gnosis
    1. Install the web3signer. This is required becausethis is the package that will contain the keystores.

Select the execution and consensus clients

  1. Select the Execution client. For now, or in the moment this guide was created, nethermind is the only execution client that supports gnosis chain. Execution client

  2. Select the consensus client. You will see the next fields when you click in the package chard.

Select a consensus client

Fee Recipient Address

The fee recipient is the regular Gnosis 0x address that will receive priority fees of the proposed block. You will only receive fees at this address for blocks you propose, not for attestations. Any Gnosis EOA or Safe address

Graffiti

Choose a string that will be appended to your proposed blocks. You will be able to change later so it can be left as is for now.

Checkpoint for fast sync

To get your beacon node up and running in only a few minutes, you can start it from a recent finalized checkpoint state rather than syncing from genesis. This is substantially faster and consumes fewer resources than syncing from genesis while still providing all the same features.

Be sure you are using a trusted node for the fast sync. Get your checkpoint sync(Dappnode fills this field with the checkpoint sync they provide by default) from a running Gnosis Beacon Chain node or use the official one.

https://checkpoint.gnosischain.com

  1. Select the web3signer.

Select web3signer

Then click in the below button that says "Apply changes" Apply the changes

Be patient, the installation process can take several minutes. You can check all have been installed in the dashboard page.

Step 2: Key Generation

Docker Command Line Instructions (only needed if you have trouble with Wagyu)
  1. Pull the docker image for the data generator

    docker pull ghcr.io/gnosischain/validator-data-generator:latest
  2. If this is your first time running the process and there is no existing mnemonic to generate keystores and deposit data, replace the variables below with your info, and then run the command.

    docker run -it --rm -v /path/to/validator_keys:/app/validator_keys ghcr.io/gnosischain/validator-data-generator:latest new-mnemonic --num_validators=NUM --mnemonic_language=english --chain=gnosis --folder=/app/validator_keys --eth1_withdrawal_address=WITHDRAWAL_ADDRESS

  3. Choose a secure password and confirm. You will be shown a mnemonic seed phrase. Write down and store your keystore password and mnemonic safely offline.


    DappNode Step 3

    Following execution, the path you defined for /path/to/validator_keys will contain the keystores and deposit_data*.json file.

Drop down for variable descriptions
  • NUM The number of signing keys (validators) to generate.
  • START_NUM Index for the first validator key. If this is the first time generating keys with this mnemonic, use 0. If keys were previously generated with this mnemonic, use the subsequent index number (e.g., if 4 keys have been generated before (keys #0, #1, #2, #3, then enter 4 here).
  • WITHDRAWAL_ADDRESS Use this parameter to provide a regular Gnosis Chain 0x address for mGNO withdrawal. This parameter can also be omitted to generate withdrawal credentials with the mnemonic-derived withdrawal public key in the EIP-2334 format (ETH2 address format). Withdrawals will not be available until after the Shanghai upgrade.
  • /path/to/ should be replaced with a valid and existing path where you want to create the validator_keys folder. Or, to create the validator_keys folder in your current working directory, use $(PWD)/validator_keys:/app/validator_keys
  • More details about command line arguments can be found here
KEEP YOUR KEYSTORES SAFE

We highly recommend generating keystores on a safe, completely offline device. To do so, you will need internet to access the latest release of Gnosis Chain Port of the Wagyu Key-Gen from GitHub (step 1), then disconnect internet or better yet copy the program to a USB drive to proceed with completely offline key generation (step 2), then finally save your deposit_data.json file (step 3) to a usb key or other transfer method that does not require online connection.

Securely backup your mnemonic, keystores, and password, and keep them in a safe place.

  1. Download the latest release of the Gnosis Wagyu Key Gen from here. There are binaries posted for Windows, macOS, Linux AMD64, and Linux ARM64, choose the appropriate binary for your OS, (or build from the source code if you’re so inclined).

DAppNode Step 3b

  1. Once you have downloaded the appropriate binary for your OS and are disconnected from the internet, go ahead and open the program. You will be given 2 options, either create a new mnemonic or import an existing mnemonic. The GUI is very user friendly and explains all steps along the way. Below are screenshots showing the flow for creating a new mnemonic. If importing a mnemonic you will need to ensure you select the proper start index on the configuration page so that you don’t create duplicate keys.

DAppNode Step 3c

DAppNode Step 3d

DAppNode Step 3e

DAppNode Step 3f

You will be shown this once again before you need to confirm it by entering each word one at a time.

DAppNode Step 3g

DAppNode Step 3h

Fill this with the mnemonic you just created to confirm.

DAppNode Step 3i

DAppNode Step 3j

Be sure to enter a withdrawal address at this step. This address will be used to receive partial or full withdrawals. You can also choose not to enter an address at this step, but please note that updating it later can be difficult. Withdrawals

Please note that once you have chosen a withdrawal address (either at this step or later), it will not be possible to update it to another address. Therefore, make sure to choose an address that you control and that is secure. :::

info

If you are running this program to generate keys within the context of the DAppNode Gnosis Chain Hardware Validator Incentive Program, make sure to generate 4 validators and to fill in the ETH1 Withdrawal Address Field with an address you have full control over. Also make sure to choose a directory that reflects the folder where you want the files to be saved.

DAppNode Step 3k

Confirm your keystore password.

DAppNode Step 3l

Select the folder where your keys should be saved.

DAppNode Step 3m

DAppNode Step 3n

Confirm that your keys have been generated.

DAppNode Step 3o

The key generation is complete, and your keys have been saved to the folder you selected.

Step 3: Upload Keystores to Web3Signer

Now that you’ve generated your deposit data and keystores, go ahead and upload your keystores to Web3Signer Gnosis.

Return to your DAppNode’s Admin UI and navigate to the info page of the Web3Signer Gnosis package.

DAppNode Step 4

Open the UI by clicking the 🏠Ui link, then click the Import Keystores button on the lower part of the Web3Signer UI.

DAppNode Step 4b

Select the keystore file(s) you generated the password you chose during the last step.

DAppNode Step 4c

You will be able to see all the keystores you’ve uploaded.

DAppNode Step 4d

You are now ready to fund these validators and start validating.

Step 4: Fund Your Validators

tip

In case you need some xDai for transaction fees you can get some from the Official xDai faucet for Gnosis.

  1. Navigate to: https://deposit.gnosischain.com/
  2. Connect your wallet.
  3. Upload the deposit_data*.json you generated with the key generator tool in Step 3.
  4. Your deposit file will be validated and list the number of validator deposits you are making and the required GNO to deposit. Click Deposit to continue.
  5. Check that you understand the risks and ensure you are interacting with the correct contract before proceeding.
  6. Click Ok and confirm the transaction in your wallet to complete the deposit.
  7. Our proxy smart contract will deposit the GNO(s) to your validators! YOU control the private keys, YOU control the withdrawal key(s)... these validators are now yours. Take good care of them!